#pragma once

namespace rocksdb {
	struct Options; 
	struct ReadOptions ;
	struct WriteOptions;

  class Comparator;
}

namespace helper {
namespace rocksdb {

class Options {
public:
    Options(::rocksdb::Comparator * comparator = nullptr);
    ~Options();

    void comparator(::rocksdb::Comparator * comparator );

    const ::rocksdb::Comparator & comparator() const ;

    const ::rocksdb::Options & options() const ;
    ::rocksdb::Options & options();

    const ::rocksdb::ReadOptions & read() const ;
    const ::rocksdb::WriteOptions & write() const ;

private:
    ::rocksdb::Options  * _options; //  : public  ColumnFamilyOptions, DBOptions
    ::rocksdb::ReadOptions  * _read; // for read
    ::rocksdb::WriteOptions  * _write; // for write
};
}//end namespace rocksdb
}//end namespace helper
